// SelfTest.h : Declaration of the CSelfTest

#ifndef __SELFTEST_H_
#define __SELFTEST_H_

#include "resource.h"       // main symbols

/////////////////////////////////////////////////////////////////////////////
// CSelfTest
class ATL_NO_VTABLE CSelfTest : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CSelfTest, &CLSID_SelfTest>,
	public ISupportErrorInfo,
	public IConnectionPointContainerImpl<CSelfTest>,
	public IDispatchImpl<ISelfTest, &IID_ISelfTest, &LIBID_ACTIVCARDLib>
{
public:
	CSelfTest()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_SELFTEST)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CSelfTest)
	COM_INTERFACE_ENTRY(ISelfTest)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
	COM_INTERFACE_ENTRY(IConnectionPointContainer)
END_COM_MAP()
BEGIN_CONNECTION_POINT_MAP(CSelfTest)
END_CONNECTION_POINT_MAP()


// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

// ISelfTest
public:
	STDMETHOD(ResynchronizeByPassword)(/*[in]*/BSTR bstrSn,/*[in]*/BSTR bstrPassword);
	STDMETHOD(ResynchronizeByClockAndCounter)(/*[in]*/BSTR bstrSn,/*[in]*/BSTR bstrClock,/*[in]*/BSTR bstrCounter);
	STDMETHOD(UnlockPinCode)(/*[in]*/BSTR bstrSn,/*[in]*/BSTR bstrChallengeCode);
	STDMETHOD(UnlockTokenAndResetNumOfTries)(/*[in]*/BSTR bstrSn);
	STDMETHOD(ManualLockingToken)(/*[in]*/BSTR bstrSn);
};

#endif //__SELFTEST_H_
